微程序控制器


[TOC]

1. 基本术语

  1. 微命令和微操作:

    一条机器指令可以分解成一个微操作序列

    在微操作控制计算机中,将控制部件向执行部件发出的各种控制命令称为微命令,是构成控制序列的最小单元

    微命令和微操作是一一对应的。微命令是微操作的控制及信号,微操作是微命令的操作执行过程.

    **产生微操作控制信号的条件:时序信号,操作码译码信号,各部件状态的反馈信号**
  2. 微指令和微地址:

    微指令是控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址

    一个微指令包括

    1. 操作控制字段:产生某一步微操作所需的一系列微操作控制信号(微命令)
    2. 顺序控制字段:控制产生下一条要执行的微指令地址
  3. 微程序

    一系列微指令的有序集合就是微程序。每一个机器指令都对应一个微程序,即一条机器指令能分解为若干条有序微指令

    机器指令的执行实际上变成微指令的执行过程

  4. 微周期

    从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期

2.微程序控制器的组成

微程序控制器组成有:

  1. 程序计数器PC
  2. 指令寄存器IR
  3. 控制存储器部件CM(常用ROM实现,用于存储微程序控制器的全部微程序
  4. 微指令寄存器μIR(用来保存从控制存储器中读取的一条微指令
  5. 下地址形成逻辑(形成并提供出下一次要用到的微指令在控制存储器中的地址),产生的微地址被存放到微地址寄存器中μMAR,为在控制存储器中读取微指令做准备

3.微程序控制器的工作过程

取指令的公共操作通常由一个取值微程序来完成
  1. 执行取指令的公共操作,将指令取到指令寄存器IR

    1. 机器开始运行时,自动将取值微程序的入口微地址送μMAR
    2. 从CM中读出微指令送入μIR
    3. 微指令的操作控制字段产生有关的微命令,用来控制计算机实现取机器指令的公共操作
    4. 当取指微程序执行完后,从主存取出的机器指令就已存入指令寄存器中
  2. 由机器指令(IR中的指令)的操作码字段产生该机器指令对应的微程序的入口地址,送入μMAR

  3. 从CM中逐条取出对应的微指令并执行

  4. 执行完对应于一条机器指令的一个微程序后又回到取值微程序的入口地址

4.微指令的编码方式

微指令的编码方式指的是操作控制字段的编码方式

  1. 直接控制方式

    1. 每一个微命令都用一个确定的二进制位予以表示
  2. 最短编码方式

    1. 使每一条N位字长的微指令只定义一个微命令
    2. M个微命令的二进制编码位:$N\ge\log_2 M$
  3. 字段编码方式

    1. 字段直接编码方式:对微指令进行分段,每个字段独立编码,每种编码代表一个微命令

      1. 分段的原则

        1. 在同一节拍内,需要互相配合起作用的微操作是并行操作,其微命令可以分在不同的字段内,这是微命令的兼容性
        2. 在同一节拍内,不允许同时出现具有排他性的微操作,只能串行操作,其微命令可分在同一字段内,这是微命令的互斥性
        3. 应与数据通路结构相适应
        4. 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂度和译码时间
        5. 每个小段内留出一个状态,表示本字段不发出任何微命令
    2. 字段间接编码

无论什么编码方式,其追求目标都是:提高编码效率,压缩微指令字的长度;保持微命令必须的并行性;硬件线路尽可能简单

5.微程序流的控制

5.1 得到下一条微指令地址

微程序执行时,只要依次给出各个微指令的地址,就能使微程序连续执行,直至完成为止

要保证微指令逐条连续地执行,就必须在本条微指令地执行过程中,能取来或临时形成下一条微指令地地址 每条机器指令均有一道于其对应地微程序,微程序的执行顺序的控制,是通过指定微指令的微地址来进行的 ## 5.2.微程序入口地址的形成 当公用的取指微程序从主存储器中取出机器指令后,由机器指令的操作码字段指出各个微程序的入口地址,由机器指令的操作码转换成初始微地址的方式有3种 1. 一级功能转换:如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口为地址码的部分位相对应
  1. 二级功能转换:当同类机器指令的操作码字段的位数和位置固定,而不同类机器指令的操作码的位数和位置不固定时,采用二级功能转换时使用二级功能转换。

    过程:第一次先按指令类型标志转移,以区分出指令属于哪一类。第二次按操作码区分出具体是哪条指令,以便找出微程序的入口微地址

  2. 通过PLA电路实现功能转换:当机器指令的操作码位数和位置都不固定时,采用PLA电路将每条机器指令的操作码翻译成对应的微程序入口地址